================================================================================
  Plugin AutoHideCursor - Guía de Compatibilidad con NeoDX
================================================================================

PROBLEMA:
Cuando usas el plugin AutoHideCursor con el plugin NeoDX de video/audio, el
cursor no se oculta inmediatamente cuando inicias por primera vez auto-ocultar.
Solo funciona después de mover el mouse una vez.

POR QUÉ SUCEDE ESTO:
NeoDX usa su propio cursor interno personalizado (basado en DirectX), que es
diferente del cursor estándar de Windows. Cuando nuestro plugin se inicia,
intenta ocultar el cursor, pero el cursor personalizado de NeoDX no es
reconocido por Windows como un cursor regular. Una vez que mueves el mouse,
NeoDX cambia al cursor estándar de Windows, y entonces nuestro plugin puede
controlarlo normalmente.

SOLUCIÓN:
Usa el nuevo comando "refreshCursor" para forzar que el cursor se sincronice
con Windows.

================================================================================
LISTA DE COMANDOS ACTUALIZADA (6 COMANDOS)
================================================================================

1. startAutoHideCursor "[tiempo_ms]"  - Iniciar auto-ocultación
2. stopAutoHideCursor                  - Detener auto-ocultación
3. setAutoHideTimeout "[tiempo_ms]"   - Cambiar tiempo de espera
4. hideCursorNow                       - Ocultar inmediatamente
5. showCursorNow                       - Mostrar inmediatamente
6. refreshCursor                       - Forzar actualización del cursor (¡NUEVO!)

================================================================================
CÓMO USAR CON NEODX
================================================================================

USO BÁSICO:
-----------

. Iniciar video NeoDX
NeoDX_Play "MiVideo.mp4"

. Habilitar auto-ocultación
startAutoHideCursor "3000"

. Forzar actualización del cursor para sincronizar con Windows
refreshCursor


EJEMPLO COMPLETO - REPRODUCTOR DE VIDEO:
-----------------------------------------

--- Al Hacer Click en Botón "Reproducir Video" ---
. Iniciar reproducción de video
NeoDX_Play "MiVideo" "[VideoPath][CurrentVideo].mp4"

. Habilitar auto-ocultación con tiempo de espera de 3 segundos
startAutoHideCursor "3000"

. Forzar actualización del cursor para compatibilidad con NeoDX
refreshCursor

--- Al Hacer Click en Botón "Pausar Video" ---
. Pausar video
NeoDX_Pause "MiVideo"

. Detener auto-ocultación y mostrar cursor
stopAutoHideCursor

--- Al Hacer Click en Botón "Detener Video" ---
. Detener video
NeoDX_Stop "MiVideo"

. Asegurar que el cursor sea visible
stopAutoHideCursor

--- En Page Leave ---
. Siempre limpiar
NeoDX_Close "MiVideo"
stopAutoHideCursor


VIDEO EN PANTALLA COMPLETA CON NEODX:
--------------------------------------

--- En PageEnter ---
. Ir a pantalla completa
Maximize
HideTitleBar

. Iniciar video
NeoDX_Play "VideoPlayer" "[VideoFile]"

. Habilitar auto-ocultación
startAutoHideCursor "2500"

. Actualizar cursor para activar inmediatamente
refreshCursor

--- En Tecla ESC o Botón "Salir" ---
. Detener video
NeoDX_Stop "VideoPlayer"

. Salir de pantalla completa
stopAutoHideCursor
ShowTitleBar
Restore

. Volver atrás
GotoPreviousPage


VIDEO CON CONTROLES PERSONALIZADOS:
------------------------------------

--- En Page Enter de Video ---
. Iniciar video
NeoDX_Play "MainVideo" "[VideoPath]"

. Habilitar auto-ocultación con retraso de 4 segundos
startAutoHideCursor "4000"
refreshCursor

. Ocultar panel de control inicialmente
Hide "ControlPanel"

--- En Evento de Movimiento del Mouse ---
. Mostrar controles cuando el mouse se mueve
Show "ControlPanel"

. El cursor se mostrará automáticamente y luego se ocultará después de 4 segundos

--- Al Cambiar Control Deslizante de Volumen ---
. Ajustar volumen
GetVar "[Volume]" "VolumeSlider"
NeoDX_Volume "MainVideo" "[Volume]"

. Mantener cursor visible durante la interacción
showCursorNow

--- Al Alternar Play/Pausa ---
If "[IsPlaying]" "=" "True"
    NeoDX_Pause "MainVideo"
    SetVar "[IsPlaying]" "False"
    stopAutoHideCursor
Else
    NeoDX_Play "MainVideo"
    SetVar "[IsPlaying]" "True"
    startAutoHideCursor "4000"
    refreshCursor
EndIf


PRESENTACIÓN DE DIAPOSITIVAS CON TRANSICIONES DE VIDEO (NeoDX):
----------------------------------------------------------------

--- Al Iniciar Presentación ---
. Habilitar auto-ocultación
startAutoHideCursor "3000"
refreshCursor

. Mostrar primera imagen
PictureLoad "ImageDisplay" "[ImagePath]Image1.jpg"

--- En Transición a Siguiente Imagen ---
. Reproducir video de efecto de transición
NeoDX_Play "Transition" "transition.mp4"

. Actualizar cursor (NeoDX acaba de iniciar)
refreshCursor

. Esperar a que se complete la transición
Wait "1000"

. Detener transición
NeoDX_Stop "Transition"

. Cargar siguiente imagen
SetVar "[CurrentImage]" "[Math "[CurrentImage]" "+" "1"]"
PictureLoad "ImageDisplay" "[ImagePath]Image[CurrentImage].jpg"


REPRODUCTOR DE AUDIO CON NEODX:
--------------------------------

--- En Botón "Reproducir Audio" ---
. Iniciar reproducción de audio
NeoDX_PlayAudio "AudioPlayer" "[AudioFile]"

. Habilitar auto-ocultación para interfaz limpia
startAutoHideCursor "3000"
refreshCursor

--- En Botón "Detener Audio" ---
. Detener audio
NeoDX_StopAudio "AudioPlayer"

. Mostrar cursor
stopAutoHideCursor


================================================================================
NOTAS IMPORTANTES
================================================================================

1. SIEMPRE llama refreshCursor inmediatamente después de startAutoHideCursor
   cuando uses NeoDX para asegurar que el cursor se oculte correctamente desde
   el inicio.

2. El comando refreshCursor es inofensivo y puede usarse incluso cuando NeoDX
   no está activo. Simplemente fuerza a Windows a reconocer el estado actual
   del cursor.

3. Si estás cambiando entre videos de NeoDX, llama refreshCursor nuevamente:
   
   NeoDX_Stop "Video1"
   NeoDX_Play "Video2" "[NextVideo]"
   refreshCursor

4. El comando funciona moviendo ligeramente la posición del cursor (1 píxel) y
   de vuelta, lo que fuerza a Windows a redibujarlo. Esto es imperceptible
   para los usuarios.

5. Solo necesitas refreshCursor cuando INICIAS auto-ocultación con NeoDX activo.
   Una vez que el cursor se oculta/muestra una vez, funciona normalmente.

================================================================================
SOLUCIÓN DE PROBLEMAS
================================================================================

PROBLEMA: El cursor todavía no se oculta con NeoDX
SOLUCIÓN: Asegúrate de llamar refreshCursor DESPUÉS de startAutoHideCursor:
          
          startAutoHideCursor "3000"
          refreshCursor          . Este es el orden correcto


PROBLEMA: El cursor parpadea al usar refreshCursor
SOLUCIÓN: Solo llama refreshCursor al iniciar NeoDX o auto-ocultación, no
          repetidamente en bucles o temporizadores.


PROBLEMA: Funciona con imágenes pero no con videos de NeoDX
SOLUCIÓN: Esto confirma que es un problema del cursor de NeoDX. Usa refreshCursor
          como se muestra en los ejemplos anteriores.


PROBLEMA: El cursor se oculta pero no reaparece al mover el mouse
SOLUCIÓN: Este es un problema diferente. Asegúrate de que NeoDX no esté
          capturando eventos del mouse. Intenta usar NeoDX_SetMouseCapture
          "False" si está disponible.

================================================================================
EXPLICACIÓN TÉCNICA
================================================================================

Por qué funciona refreshCursor:
- NeoDX crea una superposición de cursor personalizado DirectX
- Windows no reconoce esto como el cursor del sistema
- Nuestro plugin solo puede controlar el cursor del sistema de Windows
- Al mover el cursor 1 píxel y de vuelta, forzamos:
  1. NeoDX a liberar su cursor personalizado
  2. Windows a tomar el control con el cursor del sistema
  3. Nuestro plugin ahora puede controlarlo
- Esto sucede instantáneamente (imperceptible para los usuarios)

El comando refreshCursor esencialmente hace:
1. Obtiene la posición actual del cursor
2. Mueve el cursor 1 píxel a la derecha
3. Mueve el cursor de vuelta a la posición original
4. Reinicia el temporizador de auto-ocultación
5. Asegura que el cursor sea visible y rastreable

================================================================================
INFORMACIÓN DE VERSIÓN
================================================================================

Versión del Plugin: 1.1
Nuevo Comando: refreshCursor
Propósito: Compatibilidad con NeoDX y plugins de cursor personalizado
Agregado: 2024

================================================================================
